package com.itcast.demo_one.kotlin

// 通用Box类 - T可以是任意类型
class Box<T>(private val item: T) {
    fun getItem(): T = item
}

fun main() {
    d2()
}

fun d2() {
    // 类型安全的集合
    val names: List<String> = listOf("Alice", "Bob")
    val ages: List<Int> = listOf(25, 30)

    // 编译时类型检查（安全！）
    val firstChar = names[0].first() // 直接调用 String 方法
    val doubledAge = ages[0] * 2     // 直接进行数学运算
    println("第一个字符: $firstChar, Doubled age: $doubledAge")

    // 错误示例（会被编译器阻止）
    //  val wrong = names[0] * 2 // 编译错误：String 不能相乘
}

fun d1() {
    // 1. 传字符串
    /*val stringBox = Box<String>("Hello")
    println(stringBox.getItem().uppercase()) // 自动识别为String类型*/

    // 2. 传整数
    val intBox = Box<Int>(42)
    println(intBox.getItem() * 10) // 自动识别为Int类型
}